<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>crud</title>
</head>

<body>
    <script>
        //push()在数组的末尾添加一个元素 也可以同时多个添加元素
        var arr = [5, 8, 3, 6, 2];
        arr.push(1, 'a'); //直接写添加的参数 返回新数组的长度 原数组的长度会发生变化
        // console.log(arr);
        arr.unshift('c', 'e'); //在数组的前面添加一个或者多个元素  返回新数组的长度 原数组的长度会发生变化
        // console.log(arr);
        var s = arr.pop(); //没有参数的 删除数组的最后一个元素 返回删除的元素 原数组的长度会变化
        // console.log(s);
        // console.log(arr);
        var a = arr.shift(); // 没有参数的 删除数组的第一个元素 返回删除的元素 原数组的长度会变化
        // console.log(arr);
        // console.log(a);

        //1.翻转数组
        arr.reverse();
        // console.log(arr);
        //排序 分为升序 降序 a-b  b-a
        arr.sort(function (a, b) {
            return b - a;
        });
        // console.log(arr);


        //indexof(数组元素) 作用就是返回该数组元素的索引号
        var arr1 = ['red','green','blue','pink'];
       // var index = arr1.indexOf('red');
       // console.log(index);



       //字符串api基本操作  indexof('要查找的元素'，[起始的位置])
        var str = 'adbc';//基本包装类型：把简单数据类型 包装成了复杂数据类型 只有复杂数据类型才有方法 属性
        // console.log(str.length);
        //把简单数据类型包装成复杂数据类型 内部做的操做就是这样
            var temp = new String('andy');
            // 2.把temp 临时变量 给了str
          str = temp;
          //3。 销毁这个临时变量 置为null
        temp = null;
        // console.log(str.indexOf('d'));



        //查找  ['red','blue','red','green','pink','red']; red 出现的位置 以及次数
           var listArr = ['red','blue','red','green','pink','red'];
        //获取red 出现的位置 用到 indexOf();  获取每一次出现的位置用到循环 查找 次数就定义一个变量记录
        var  index = listArr.indexOf('red');//indexof('要查找的元素'，[起始的位置]) 没有找到返回负一
        var num = 0;

        // 这一种写法 不推荐 会查找二次
        // for (var i = 0; i <listArr.length ; i++) {
        //     if (listArr.indexOf('red',i) == -1){
        //
        //         continue;
        //     }else {
        //         console.log(index);
        //         index = listArr.indexOf('red',i+1);
        //     }
        // }


        // while (index != -1){//推荐这一种
        //     console.log(index);
        //     num++;
        //     index = listArr.indexOf('red',index+1);
        // }
        // console.log('出现的次数:'+num);


        // 1、替换字符replace('被替换的字符','替换的字符');
        // var str = 'adf';
        // console.log(str.replace('a','c'))

        //2. 字符串转数组 split('分隔符'); join 也是把字符串转换成数组
        // var str1= 'red, green,yellow';
        // console.log(str1.split(','));



        // var str = ‘abcdhegkiewagdadeauy’; 查找字符串里面出现次数多的 元素
        var str2 = 'abcdhegkiewagdadeauy';
        //采用对象的方式存放单个元素 以计算出当前出现的次数
        var a = {};
        //可以用到字符串的api charAt 遍历查找 根据索引返回的是当前的元素
        for (var i = 0; i <str2.length ; i++) {
            var ind = str2.charAt(i);
            if(a[ind]){
                a[ind]++;//如果有这个属性 就加一  没有就给它一个次数
            }else {
                a[ind] = 1;
            }
        }
        //遍历对象 获取出现次数最多的
        var max = 0;
        var maxStr = '';
        for (const k in a){
            if (max < a[k]){
                max = a[k];
                maxStr = k;

            }
        }
        console.log('次数多是:'+max );
        console.log('元素是:'+maxStr);


















    </script>
</body>

</html>